package com.cnct.generic.dubbo.utils;

import java.lang.reflect.Method;

/**
 * 反射工具类
 *
 * @author wangzhen
 */
public class ReflectUtil {


    /**
     * 获取方法类型
     *
     * @param interfaceName 接口名称 {全名如 com.test.service.HelloService }
     * @param methodName    方法名称 {如: sayHello() }
     * @return 方法类型名称
     */
    public static String[] getMethodParamType(String interfaceName, String methodName) {

        try {
            Class<?> class1 = Class.forName(interfaceName);
            //获取所有的公共的方法
            Method[] methods = class1.getMethods();
            for (Method method : methods) {
                if (method.getName().equals(methodName)) {
                    Class[] paramClassList = method.getParameterTypes();
                    String[] paramTypeList = new String[paramClassList.length];
                    int i = 0;
                    for (Class className : paramClassList) {
                        paramTypeList[i] = className.getTypeName();
                        i++;
                    }
                    return paramTypeList;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
